﻿using System.Threading;

namespace DimensionsHelper.Common.Contracts;

/// <summary>
///     此接口定义了可执行的运行的类型基础属性和方法。
/// </summary>
public interface IRunnable
{
    /// <summary>
    ///     当前类所属的类别，可用于和其他类型区分。
    /// </summary>
    string Section { get; }

    /// <summary>
    ///     运行当前类型的内部逻辑，并且可以中途取消。
    /// </summary>
    /// <param name="cancellationToken">给定线程的<see cref="CancellationToken" /></param>
    void Run(CancellationToken cancellationToken);
}